perm filename EX5.SAI[0,BGB] blob sn#115093 filedate 1974-08-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "EX5"
C00004 ENDMK
C⊗;
BEGIN "EX5"
	REQUIRE "GEOMES.HDR[GEM,HE]" SOURCE_FILE;
	DEFINE αα="COMMENT";
	DEFINE π="3.1415927";
	INTEGER B1,B2;
INTEGER PROCEDURE GLUEFF(INTEGER FACE1,FACE2);
BEGIN "GLUEFF"
	INTEGER V,V1,V2,E,E0,I; REAL DMIN,D;
	V1 ← VCCW(PED(FACE1),FACE1);
αα FIND VERTEX OF FACE2 THAT IS CLOSEST TO V1;
	DMIN ← 10@10; E ← E0 ← PED(FACE2);
	DO BEGIN
		V ← VCCW(E,FACE2);D ← DISTAN(V1,V);
		IF D<DMIN THEN BEGIN DMIN←D;V2←V;END;
	END UNTIL E0 = (E←ECCW(E,FACE2));
αα MAKE THE WASP EDGE;
	E ← GLUEE(FACE1,V1,FACE2,V2);
αα CLOSE OTHER EDGES;
	V ← OTHER(NCCW(E),V1);
	DO BEGIN
		V1 ← OTHER(PCW(E),V1);
		V2 ← OTHER(PCCW(E),V2);
		E ← MKFE(V1,FACE1,V2);
	END UNTIL V=V1;
	RETURN(BGET(E));
END "GLUEFF";
	MKUNIV;
	B1 ← MKCUBE(2,2,2);ROTATE(B1,0,-π/2,0);TRANSL(B1,-3,0,0);
	B2 ← MKCUBE(3,3,3);ROTATE(B2,0,+π/2,0);TRANSL(B2,+4,0,0);
	GLUEFF(PFACE(B1),PFACE(B2));
	GEODPY;INCHRW;
END "EX5";